<?php
/**
 *
 *
 * 针对于laravel的方法函数
 *
 *
 */

function get_request_post()
{
    return request()->isMethod('post');
}

function cnpscy_config(string $config_name = '', string $default = '')
{
    if (empty($config_name)){
        return config('sys_grzq');
    }
    return config('sys_grzq.' . $config_name, $default);
}

//快速修改.env文件
function modifyEnv(array $data)
{
    $envPath      = base_path() . DIRECTORY_SEPARATOR . '.env';
    $contentArray = collect(file($envPath, FILE_IGNORE_NEW_LINES));
    $contentArray->transform(function ($item) use ($data)
    {
        foreach ($data as $key => $value) {
            if (str_contains($item, $key)) {
                return $key . '=' . $value;
            }
        }
        return $item;
    });
    $content = implode($contentArray->toArray(), "\n");
    \Illuminate\Support\Facades\File::put($envPath, $content);
}

/**
 * 将高德坐标（GCJ-02）转换为腾讯坐标（火星坐标系）
 *
 * @param float $lng 高德经度
 * @param float $lat 高德纬度
 * @return array 包含转换后的腾讯经度和纬度的数组
 */
function convertGcj02ToMars($lng, $lat) {
    $x_pi = 3.1415926535897932384626433832795 * 3000.0 / 180.0;
    $x = $lng - 0.0065;
    $y = $lat - 0.006;
    $z = sqrt($x * $x + $y * $y) - 0.00002 * sin($y * $x_pi);
    $theta = atan2($y, $x) - 0.000003 * cos($x * $x_pi);
    $lng2 = $z * cos($theta);
    $lat2 = $z * sin($theta);

    return array('lng' => $lng2, 'lat' => $lat2);
}

/**
 * 将腾讯坐标（火星坐标系）转换为高德坐标（GCJ-02）
 *
 * @param float $lng 腾讯经度
 * @param float $lat 腾讯纬度
 * @return array 包含转换后的高德经度和纬度的数组
 */
function convertMarsToGcj02($lng, $lat) {
    $x_pi = 3.1415926535897932384626433832795 * 3000.0 / 180.0;
    $x = $lng;
    $y = $lat;
    $z = sqrt($x * $x + $y * $y) + 0.00002 * sin($y * $x_pi);
    $theta = atan2($y, $x) + 0.000003 * cos($x * $x_pi);
    $lng2 = $z * cos($theta) + 0.0065;
    $lat2 = $z * sin($theta) + 0.006;

    return array('lng' => $lng2, 'lat' => $lat2);
}
function checkCaseBystr($string){
    if (preg_match('/[A-Z]/', $string)) {
        return true;
    }else{
        return false;
    }
}
